#include "processBar.h"
#include <string.h>
#include <unistd.h>


const char * label = "|/-\\ ";

//进度条是如何被调用的
char bar[NUM];//全局变量不用初始化


#define GREEN "\033[0;32m"
#define END "\033[m"


void processbar(int rate)
{

    if(rate < 0 || rate >100)
        return ;
    int len = strlen(label);

       printf(GREEN"[%-100s]"END"[%d%][%c]\r",bar,rate,label[rate%len]);
       fflush(stdout);
       bar[rate++]= BODY;
       if(rate < 100)
           bar[rate] = RIGHT;
    
  


}
void initbar()
{

  memset(bar,'\0',sizeof(bar));

}
































/*

const char *lable = "|/-\\ ";

//rate :[0 ,100]
void processbarCore(int speed,int rate)
{

   

}

//进度条的实现：
//1.不要换行
//2.同一行递增式增加
void processbar(int speed)
{
//    printf("hello processbar\n");
    int cnt = 0;
    char bar[NUM];
    memset(bar,'\0',sizeof(bar));
    int len = strlen(lable);//求出字符串的长度
   
    while(cnt <= TOP)
    {
       
        printf("[%-100s][%d%%][%c]\r",bar,cnt,lable[cnt%len]);//%100s默认右对齐，输出不足域宽补空格，%-100s左对齐，输出不足域宽补空格
     // \r的作用（回车）：将光标移到最左侧，重新输出
      //没有\n,就没有立即刷新，因为显示器模式是行刷新
      fflush(stdout);//强制刷新
        bar[cnt++] = BODY;
        if(cnt < 100 )
        bar[cnt] = RIGHT;
        //再增加旋转光标
       usleep(speed);//usleep 单位微秒

    }
       

    printf("\n");



}

*/
